home *** CD-ROM | disk | FTP | other *** search
/ Hornet Underground 1 / Hornet Underground.iso / demonews / demonews.116 < prev    next >
Text File  |  1996-05-07  |  55KB  |  1,029 lines

  1. .Start.of.DemoNews.116..............................................Size:55,139
  2.  
  3.  ______/\___________________________       __  ________________ ___  /\_______
  4.  \____   \  ________ _   _ ______   \     /  \|  \  ________   |   \/  ______/
  5.  /   |    \  _)   \   \_/   \   |    \   /    \   \  _)   \    |    \______  \
  6. /    |     \       \   |     \  |     \ /          \       \  /~\    \    /   \
  7. \_____     /_______/___|     /________/ \____\_____/_______/_________/________/
  8.     \_____/            |____/
  9.                                                       | Subscribers  :  1935
  10.        DemoNews Issue #116 - February 20, 1996        |   Last Week  :  1903
  11.                     -------------                     |   Change     :   +32
  12.      DemoNews is a newsletter for the demo scene.     | Archive Size : 2097M
  13.  It is produced by Hornet at the site ftp.cdrom.com.  |   Last Week  : 2064M
  14.     Our demo archive is located under /pub/demos.     |   Remaining  :  836M
  15.                                                       |
  16. =-[Contents]=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  17.  
  18.    Line    Section
  19.  ------    -------------------------------------------------------------------
  20.      31    Calendar
  21.      49    Top Downloads
  22.      72    Uploads
  23.     388    Articles
  24.     390      Introduction................................Snowman
  25.     444      Intro to 3D Graphics - Volume 02............Kiwidog
  26.     803      VGA Hardware Tricks, Part 4/6...............Trixter
  27.    1006    Subscribing
  28.    1021    Closing
  29.  
  30.  
  31. =-[Calendar]=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  32.  
  33.  Date      Event               Location  Concact Points
  34.  --------- ------------------- --------- -------------------------------------
  35.  23 Feb 96 Pre-Awakening       U.S.A.    cramerc@elwha.evergreen.edu
  36.  29 Mar 96 Mekka               Germany   PV80090@PH80090.HH.eunet.de
  37.                                          www.xs4all.nl/~blahh/RAW/Parties
  38.                                            /Invitations/Mekka.html
  39.  02 Apr 96 The Gathering       Norway    mikaels@powertech.no
  40.                                          www.ifi.uio.no/~uwek/Crusaders/TG
  41.  06 Apr 96 X                   Netherlnd cba@xs4all.nl
  42.                                          www.xs4all.nl/~herkel
  43.  31 May 96 Naid                Canada    naid@autoroute.net
  44.                                          www.autoroute.net/~naid
  45.  
  46.  More information is at http://hagar.arts.kuleuven.ac.be/~sdog/party.html
  47.  
  48.  
  49. =-[Top Downloads]-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  50.  
  51.  NOTE: Statistics are sometimes slightly off due to symbolic links, mirrors,
  52.  renamed files, and other things which affect the log files.
  53.  
  54.  Pc Times FileName.Ext      Pc Times FileName.Ext       Pc Times FileName.Ext
  55.  -- ----- --------.---      -- ----- --------.---       -- ----- --------.---
  56.  <COMBINED LIST>            <DEMOS LIST>                <GRAPHICS LIST>
  57.   1 00452    ft205.zip       1 00179  animate.zip        1 00031   airwar.zip
  58.   2 00217 ice9601a.zip       2 00174 nooon_st.zip        2 00030  scarlet.zip
  59.   3 00193     cp16.zip       3 00163 ftj_ymca.zip        3 00028 veced300.zip
  60.   4 00182    ft204.zip       4 00135  cmapaim.zip        4 00028 dst_frac.zip
  61.   5 00179 ice9601b.zip       5 00129 cmapaifx.zip        5 00025  bedtime.zip
  62.   6 00179  animate.zip      <MUSIC LIST>                <CODE LIST>
  63.   7 00174 nooon_st.zip       1 00452    ft205.zip        1 00088 dn114_3d.zip
  64.   8 00163 ftj_ymca.zip       2 00192     cp16.zip        2 00073   kmagv2.zip
  65.   9 00149 scrmt321.zip       3 00182    ft204.zip        3 00068  alabv12.zip
  66.  10 00144 acdu0196.zip       4 00149 scrmt321.zip        4 00058    water.zip
  67.                                                          5 00053 dos32v33.zip
  68.  
  69.  <Files downloaded total : 051933>
  70.  
  71.  
  72. =-[Uploads]-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  73.  
  74. =----------------------------------------------------------[File Information]-=
  75.  
  76.  All files listed below are on ftp.cdrom.com under /pub/demos.
  77.  Please keep in mind that all ratings are subjective.
  78.  
  79.  If your file transfers are too slow, there are several alternatives:
  80.  
  81.    Our code mirror is ftp.co.iup.edu/code.  ftpadmin@ftp.co.iup.edu for help.
  82.    Try getting files from the web at http://www.cdrom.com/pub/demos
  83.    See /hornet/demonews/demonews.102 for details about ftpmail.
  84.  
  85.  You may also wish to check out a couple of other good demo sites:
  86.  
  87.    ftp://ftp.arosnet.se/e:\demo maintained by Zodiak / Cascada
  88.    ftp://hagar.arts.kuleuven.ac.be/demos maintained by Sleeping Dog / Natives
  89.  
  90.  Here are also a few good WWW links to try out (under construction):
  91.  
  92.    http://www.th-zwickau.de/~maz/sound.html for music and sound utils
  93.  
  94. =-------------------------------------------------------------[Demos:General]-=
  95. Location /demos/alpha             Size Rated Description
  96. =-------------------------------- ---- ----- ---------------------------------=
  97. /1994/t/thefirst.zip               283 ***   The First by Strontium 90
  98. /1995/f/fdg_ind.zip                352 ***   Indaba by Fudge
  99. /1996/0-9/1frame.zip                 7 ****  1 Frame by Dlux
  100. /1996/f/frosty.arj                  20 **    Frosty by Sir Hes
  101. /1996/n/nn.arj                     243 *+    NoNameIntro by Sir Hes
  102.  
  103. General Probe 1996 4k Intros (GP96:in4k:)
  104. /1996/a/ame_pain.zip                 5 ****  01: Pain by Amnesty
  105.  
  106. Juhla 1996 Demos (JUH96A:demo:)
  107. /1996/o/onenight.zip               261 **    EE: One-Night Stand by QP
  108.  
  109. Juhla 1996 64k Intros (JUH96A:in64:)
  110. /1996/e/emf_porn.zip                61 ***+  15: Porno by EMF
  111.  
  112. =-------------------------------------------------------------[Music:General]-=
  113. Location /demos/music             Size Rated Description
  114. =-------------------------------- ---- ----- ---------------------------------=
  115. /disks/1995/x/xmas95.zip          1793 **+   Xmas 95 by Epinicion
  116. /songs/1994/mod/f/fantasy.zip      199 **+   Fantasy World by ??
  117. /songs/1994/mod/m/minion.zip       137 **    Minions of Power by ?
  118. /songs/1995/s3m/2/2t2-sadw.zip     289 ***+  A Sad World We Live In by B00mer
  119. /songs/1995/s3m/a/arn_bara.zip      92 *+    Maior Abandonado by nS
  120. /songs/1995/s3m/a/arn_fine.zip     114 **+   I Feel Fine by nS and Minesota
  121. /songs/1995/s3m/a/arn_free.zip     254 ***   Free as a Bird cover by Minesota
  122. /songs/1995/s3m/a/arn_iron.zip     182 *+    Iron Man cover by Minesota
  123. /songs/1995/s3m/a/arn_mk2t.zip     340 *     MK 2 Techno by CJ Cyberjobe
  124. /songs/1995/s3m/a/arn_sdm.zip      214 *+    Short Dick Man by HBM
  125. /songs/1995/s3m/a/arn_strt.zip     245 *+    Funky Street Walk by CJ Cyberjobe
  126. /songs/1995/s3m/a/arn_tnk.zip      108 **    Thinking About You by HBM
  127. /songs/1995/s3m/a/ascen.zip        264 ***   Ascension by Master of Darkness
  128. /songs/1995/s3m/e/ele-plan.zip     237 ***   Planet on Acid by Elemental
  129. /songs/1995/s3m/f/flp-bd.zip       206 **    Bioptic Dichotomy by Asken
  130. /songs/1995/s3m/f/flp-wnds.zip     174 ***   Windstorm by Mondo
  131. /songs/1995/s3m/h/highden2.zip      72 *+    High Density by Warp
  132. /songs/1995/s3m/j/js-cattl.zip     153 *     Wonder Cattle by Speig
  133. /songs/1995/s3m/k/kon-no.zip       111 **+   Accept no Subs. by Flacco + Waarp
  134. /songs/1995/s3m/v/v8r-ap.zip       210 ***   Acid Phreak by viol8r
  135. /songs/1995/s3m/w/wait4u.zip         3 ***   Waiting for You by falcon
  136. /songs/1995/s3m/w/wings.zip         64 **    Wings by Warp
  137. /songs/1995/s3m/w/wings3.zip       101 **    Wings 3 by Warp
  138. /songs/1995/s3m/x/xmass.zip        329 +     X-mass jam by BigpiE
  139. /songs/1995/s3m/y/ybbanjo.zip      156 ***+  Banjo jammin by Yannis
  140. /songs/1995/s3m/y/ybblub.zip        50 **+   Blubbiest Places by Yannis
  141. /songs/1995/s3m/y/ybecho.zip       176 ***+  Echomation by Yannis
  142. /songs/1995/s3m/y/ybmirac.zip       47 **+   Little Miracle by Yannis
  143. /songs/1995/s3m/y/ybtones.zip       67 ***+  Harmonic Tones by Yannis
  144. /songs/1995/s3m/z/znc-80kh.zip      72 **    Around the World in 80 by zinc
  145. /songs/1995/xm/f/faraway.zip        54 **    Faraway Trek by Joshua Szmajda
  146. /songs/1995/xm/f/flp-glid.zip      135 **+   Sunset Glider by Wolfgang Krauser
  147. /songs/1995/xm/f/flp-jour.zip      160 ***   Journey to Sky Tower by Archon
  148. /songs/1995/xm/f/flp-slow.zip      274 ***   Slow Love by Gillespie
  149. /songs/1995/xm/g/grv_jour.zip      181 ***   N R Livet Leker by Zalt
  150. /songs/1995/xm/x/xmlookup.zip     4636 **    Lookup by Omega
  151. /songs/1995/xm/x/xtd_040.zip       311 ***+  Guiding Light by Virtual Rhythm
  152. /songs/1995/xm/x/xtd_045.zip       879 *+    Fallin Apart by Assex
  153. /songs/1995/xm/x/xtd_046.zip       400 ****  Allegorie by Virtual Rhythm
  154. /songs/1995/xm/x/xtune.zip         111 *+    Xtunes by Darius
  155. /songs/1995/xm/z/zan-extr.zip      111 **    Extreme Overload by zanti
  156. /songs/1996/mod/g/grv_fun.zip      194 **+   Funkadelic's Jam by Omen
  157. /songs/1996/mod/h/hnz-bear.zip     140 ***   Bear by Hunz
  158. /songs/1996/mod/h/hnz-evnt.zip      76 **+   Events by Hunz
  159. /songs/1996/mod/h/hnz-fary.zip      56 **    FairyFloss by Hunz
  160. /songs/1996/mod/h/hnz-free.zip      75 ***+  Freestyle by Hunz
  161. /songs/1996/mod/h/hnz-grow.zip     112 ***+  Growing to fast? by Hunz
  162. /songs/1996/mod/h/hnz-mile.zip      82 ***   24,000 miles by Hunz & Hollywood
  163. /songs/1996/mod/h/hnz-sfrn.zip     138 **    Sufferings by Hunz
  164. /songs/1996/mod/h/hnz-tech.zip      96 **+   Techno Horses by Hunz
  165. /songs/1996/mod/h/hnz-time.zip     123 ***   Time Has Gone by Hunz
  166. /songs/1996/mod/h/hnz-tran.zip     117 ***+  Transfer by Hunz
  167. /songs/1996/mod/i/inspired.zip      83 ***   Inspired by Strix
  168. /songs/1996/mod/k/k_sting.zip      255 ***+  Stingray by Hollywood
  169. /songs/1996/mod/l/luminous.zip     167 **    Luminous Future by Smash
  170. /songs/1996/mod/l/lw_venus.zip      97 **+   Venus Power by Michiru
  171. /songs/1996/mod/t/t_krdogg.zip     133 **    Kraq Dogg by David Weekly
  172. /songs/1996/mod/y/ybstrsrf.zip     174 ****  Street surfin by Yannis
  173. /songs/1996/mtm/k/k_lodge.zip      391 ***+  Lodge of 3 Globes by Maelcum
  174. /songs/1996/mtm/k/k_opp.zip         87 ***   Opposition by TheHacker
  175. /songs/1996/other/k/kx-synd.zip    435 *+    Syndicate of Death by Kxmode
  176. /songs/1996/other/m/mt-ww0.zip     217 **+   Wantonly Waiting by Mindtrip
  177. /songs/1996/other/n/no-secon.zip   107 ***   Second Sight by Delta X
  178. /songs/1996/s3m/a/a_ap.zip         145 ***+  Atomic Plague by Matt Friedly
  179. /songs/1996/s3m/a/am_tpe.zip       129 **    Psychedelic Experience by Amorphis
  180. /songs/1996/s3m/a/arn_geek.zip      95 **+   Geek Stink Breath by Minesota
  181. /songs/1996/s3m/a/athought.zip     167 ****  Another Night of Thought by ZaStaR
  182. /songs/1996/s3m/b/brokenw.zip       84 ****  Broken Wings by Warp
  183. /songs/1996/s3m/f/foo.zip          915 **    I'll Stick Around by Stein
  184. /songs/1996/s3m/g/g_abort.zip       82 *     Abortions Suck by Huggy Bear
  185. /songs/1996/s3m/h/hd-chnce.zip      88 ***   No More Chances by Crus
  186. /songs/1996/s3m/i/iha-acid.zip      79 **+   Acidic Perspiration by Iha
  187. /songs/1996/s3m/j/jbmutate.zip     311 **+   Mutational Pathogen. by Schizoid
  188. /songs/1996/s3m/j/jezebel.zip      978 +     Juke Joint Jezebel by Stein
  189. /songs/1996/s3m/j/judgmnt.zip      271 **+   Judgement by mJan
  190. /songs/1996/s3m/k/k_ballad.zip     380 ****  The Last Ballad by Siren
  191. /songs/1996/s3m/k/k_lproof.zip     194 *+    Living Proof by GooRoo
  192. /songs/1996/s3m/k/k_softy.zip      204 +     Softy by Karl
  193. /songs/1996/s3m/l/life.zip          46 **    Life is Life by ReCoder
  194. /songs/1996/s3m/n/nin_ruin.zip     727 ***+  Ruiner (remix) by Bedlamite
  195. /songs/1996/s3m/p/plasma.arj       202 **+   Plasma by Petador
  196. /songs/1996/s3m/p/pr-calln.zip     186 ***   The Calling by Darkwolf
  197. /songs/1996/s3m/p/pr-stand.zip     281 ***+  Standing Close by Darkwolf
  198. /songs/1996/s3m/v/v-inner.zip      145 ***+  Inner Turmoil by Vegas
  199. /songs/1996/s3m/w/wr-ccity.zip      59 ***   Century City by wraith
  200. /songs/1996/s3m/w/wr-utopi.zip     186 ***   Utopia by wraith
  201. /songs/1996/s3m/y/ybfurble.zip       9 ****  Invasion of Furbles by Yannis
  202. /songs/1996/s3m/y/ybtiny.zip         6 ***   Tinypino by Yannis
  203. /songs/1996/s3m/y/yee-had.zip      139 **+   Yeeeeeeeehawwwwwwww! by Hadji
  204. /songs/1996/s3m/y/yyz.zip          391 ***   Yyz by Ler
  205. /songs/1996/s3m/z/zn-happy.zip     195 ***+  Happy Daze by zinc
  206. /songs/1996/s3m/z/zn-jazzt.zip      90 **+   Jazzting by zinc
  207. /songs/1996/xm/e/el-defin.zip      100 ***   Defining by Electric Lucidity
  208. /songs/1996/xm/e/eternity.zip      573 ***+  Eternity by Khyron
  209. /songs/1996/xm/f/fh-fperf.zip      114 **    Fake Perfection by FH
  210. /songs/1996/xm/f/fh-sf96.zip       117 **    Strange Feelings 96 by FH
  211. /songs/1996/xm/f/flp-gl01.zip      144 **+   Fallen from Grace by Gillespie
  212. /songs/1996/xm/f/fm-snoop.zip      292 ***+  Raping the Dog by Mellow-D
  213. /songs/1996/xm/f/fr-loye.zip       256 ***+  Love Opens Your Eyes by Nabo & Teo
  214. /songs/1996/xm/g/gl-dist.lzh       385 ***+  Distance by Glitch
  215. /songs/1996/xm/g/gl-lapse.lzh      226 **    Lapse by Glitch
  216. /songs/1996/xm/g/grv_wate.zip      110 ***+  Waterfall by Balrog
  217. /songs/1996/xm/h/hyperion.zip      515 **+   Hyperion by Outrage & Orc
  218. /songs/1996/xm/j/j-kgdsky.zip      282 ****+ Kingdom Skies by Jase
  219. /songs/1996/xm/k/k_mhouse.zip      581 ***   My House by Vivid
  220. /songs/1996/xm/l/lok_deep.zip      241 *+    Deep Inside by Ganja Man
  221. /songs/1996/xm/l/lok_spkl.zip      155 *+    Speed Kills by Ganja Man
  222. /songs/1996/xm/m/maz-last.zip      284 ****  Fifteen by Dynamic Harmony
  223. /songs/1996/xm/m/moonscpe.arj      613 ***   Moonscape by Petador
  224. /songs/1996/xm/m/mr_clytn.zip      309 ****+ Claytons by Mick Rippon
  225. /songs/1996/xm/o/ophelia2.zip      350 ***+  Ophelia 2 by Xerxes
  226. /songs/1996/xm/p/ploff-01.zip      374 ***   It Makes me Happy by Ploffer
  227. /songs/1996/xm/z/zan-reli.zip      185 ***   Relieved by zanti
  228.  
  229. The Party 1995 4-Channel Music (TP95:m4ch:)
  230. /songs/1995/mod/f/fountain.zip     454 ****+ 01: Fountain of Sighs by Unreal
  231. /songs/1995/mod/c/compact.zip      142 ****  03: Compact Caviar by Mystical
  232. /songs/1995/mod/k/kissmyas.zip     244 ****  05: Kissmyass by Jazz,Haujobb
  233. /songs/1995/mod/j/jazzin.zip       297 ****  09: Jazzin by FBY
  234. /songs/1995/mod/c/chico_d.zip      318 ***+  11: Chico de Loros by Gandbox
  235. /songs/1995/mod/w/what_gui.zip     557 ***+  13: What Guitar by Mindfuck
  236. /songs/1995/mod/t/trancepl.zip     579 ***   14: Trans Playground by Prophet
  237. /songs/1995/mod/p/post_ouv.zip     275 ***+  15: Post Ouverture by Trip
  238. /songs/1995/mod/p/play_kid.zip     482 ****  16: Play Kid by Unison
  239. /songs/1995/mod/d/december.zip     164 ***+  17: December by Pinocchio,Contraz
  240. /songs/1995/mod/s/sleeping.zip     119 ****  19: Energy by Laz
  241. /songs/1995/mod/p/party_su.zip     147 ****  20: Party Sux by Dreamer
  242. /songs/1995/mod/s/separate.zip     133 ***+  21: Seperate Ways by Clawz
  243. /songs/1995/mod/m/magic_jo.zip     243 ***+  22: Magic Journey by Fash
  244. /songs/1995/mod/s/spritzst.zip     215 ***   23: Spritzstunden by Slide G.
  245. /songs/1995/mod/w/world_of.zip     278 ***+  26: World Insanity by Lizardking
  246. /songs/1995/mod/b/blacksil.zip     116 *+    XX: Black Silver by ???
  247. /songs/1995/mod/b/bnmainia.zip     100 **    XX: Bn Mainia by Maf + Eagle
  248. /songs/1995/mod/b/bornin57.zip     108 ***   XX: Born in 1957 by Dave
  249. /songs/1995/mod/c/campaign.zip     218 **+   XX: Virulent Campaign by Sonic
  250. /songs/1995/mod/c/can_pas.zip      162 ***   XX: Canned Passion by Dep
  251. /songs/1995/mod/c/caphlame.zip     211 *+    XX: Caph and Lamed by Prick
  252. /songs/1995/mod/c/cascade.zip      240 **    XX: Cascade Fsol by The Fox II
  253. /songs/1995/mod/c/chaseit.zip      162 ***   XX: Chaseit by Vincent
  254. /songs/1995/mod/c/china.zip        229 **    XX: China by Al Bundy
  255. /songs/1995/mod/c/chr_monk.zip     390 ***   XX: Trance Monks by Chronic
  256. /songs/1995/mod/c/classic.zip      255 **    XX: Classical Interrupt by CDK
  257. /songs/1995/mod/c/cloudz.zip       361 **+   XX: Behind the Cloudz by Bier
  258. /songs/1995/mod/c/co-coco.zip      171 ***   XX: Co-Cocorico by Shad + Live
  259. /songs/1995/mod/c/collecti.zip     364 **+   XX: Collective H. Compo by Wax
  260. /songs/1995/mod/c/complete.zip     153 ***+  XX: Complete Disaster by Psycho
  261. /songs/1995/mod/c/control.zip      224 ***   XX: Control by Hilander
  262. /songs/1995/mod/c/cracklin.zip     230 *     XX: Crackling Turd by Taste
  263. /songs/1995/mod/c/crazy_s.zip      266 ***+  XX: Crazy, Sexy, Cool by Virgill
  264. /songs/1995/mod/c/creature.zip     289 ***   XX: Creature by Odie
  265. /songs/1995/mod/d/do_you_l.zip     209 *+    XX: Do You Love by VVV,MJK
  266. /songs/1995/mod/d/dragonbr.zip     406 **    XX: Dragon Breath by Black Dragon
  267. /songs/1995/mod/d/dreamvoy.zip     147 ***+  XX: Dream Voyage by Gizmo
  268. /songs/1995/mod/e/easy_lis.zip     144 **+   XX: Easy Listening by Bohdi
  269. /songs/1995/other/ecnofunx.zip     369 [n/a] XX: Ecno Funx by Gigantbox
  270. /songs/1995/mod/e/en_el_ca.zip     167 ****  XX: En el Cafe by Tiny
  271. /songs/1995/mod/e/especial.zip     100 ****  XX: Espcial Special by Knaekpolsen
  272. /songs/1995/mod/e/exrcompt.zip     220 ***+  XX: Exrcomptun by Elixir
  273. /songs/1995/mod/f/field-da.zip     507 ****  XX: Field-Day by Scorpik
  274. /songs/1995/mod/f/forever_.zip     362 *+    XX: Forever Love by Trance
  275. /songs/1995/mod/f/ft_magic.zip     233 **    XX: FT Magic Sound by Thiesen
  276. /songs/1995/mod/g/gettings.zip     193 **    XX: Getting Started by Knox
  277. /songs/1995/mod/g/gluppobe.zip     373 ***+  XX: Gluppobert by Quazar
  278. /songs/1995/mod/g/gnaule.zip       240 **+   XX: Gnaule by Doh
  279. /songs/1995/mod/g/god_of_.zip      254 **    XX: God of Errors 2 by Raze
  280. /songs/1995/mod/g/goingtot.zip     204 **+   XX: Going to the Top by Mot,Istari
  281. /songs/1995/mod/g/greenday.zip     275 **    XX: Greenday Thing by Futuremind
  282. /songs/1995/mod/h/hei-bang.zip      55 +     XX: Bim Bom Bam by HeiZahn
  283. /songs/1995/mod/h/hey_skat.zip     251 **    XX: Hey Skat by Splif
  284. /songs/1995/mod/h/higher_a.zip     193 **+   XX: Higher by Randall,Eracore
  285. /songs/1995/mod/h/hooyowyc.zip     170 ***+  XX: Hoyowy Chrzaszcz by Spiryt,Ils
  286. /songs/1995/mod/i/iconbast.zip     197 *+    XX: Iconbastic by Maytz
  287. /songs/1995/mod/i/illusion.zip     172 ***+  XX: Illusion by Trance
  288. /songs/1995/mod/i/in_addic.zip     225 **+   XX: In Addiction by TNT
  289. /songs/1995/mod/i/in_my_ba.zip     286 ***   XX: In My Backyard by Fender
  290. /songs/1995/mod/i/innertra.zip     130 **+   XX: Innertrance by KTN
  291. /songs/1995/mod/j/jazztime.zip      69 **    XX: It's Jazztime by Sector
  292. /songs/1995/mod/j/jerry-sh.zip     444 ****  XX: Jerry-Shop by Dan,Norby
  293. /songs/1995/mod/k/kickin_i.zip     182 **+   XX: Kickin It Playback by Mortimer
  294. /songs/1995/mod/k/kresten_.zip     161 ***   XX: Buddha Medly by DTS
  295. /songs/1995/mod/l/live_for.zip     115 **    XX: Live Forever by Trapdoor
  296. /songs/1995/mod/m/m-caviar.zip     141 ***+  XX: Compact Caviar by Mystical
  297. /songs/1995/mod/m/manic_fi.zip     217 *+    XX: Manic Filters by Decybel
  298. /songs/1995/mod/m/marching.zip     102 *+    XX: Marching Elefants by X-Cess
  299. /songs/1995/mod/m/media-te.zip     231 **+   XX: Media Techno Popicus by Speedy
  300. /songs/1995/mod/m/mellow_t.zip     225 **    XX: Mellow Technology by Klorathy
  301. /songs/1995/mod/m/morning-.zip     126 ***+  XX: Morning by Dan Dryer
  302. /songs/1995/mod/m/mountain.zip     404 ***   XX: Mountain High by Tricktrax
  303. /songs/1995/mod/m/mystics.zip      205 **    XX: Mystic by Speck
  304. /songs/1995/mod/n/neat_com.zip     373 **    XX: Neat by Trickster
  305. /songs/1995/mod/n/nowasyn.zip      220 *+    XX: Nowasyn by Nowawes
  306. /songs/1995/mod/o/obsessio.zip     156 ***   XX: Obsession by Zoomorph
  307. /songs/1995/mod/o/omega.zip        196 **    XX: Omega by Smooth
  308. /songs/1995/mod/o/out_of_g.zip     155 **+   XX: Out of Goa by Yogi
  309. /songs/1995/mod/p/plutoniu.zip     146 *+    XX: Plutonium 239 by Tls
  310. /songs/1995/mod/r/r0undab0.zip      87 ***+  XX: Roundabout by Boon
  311. /songs/1995/mod/r/rave_tri.zip     196 *     XX: Rave Trip by X-et
  312. /songs/1995/mod/r/rocks.zip        226 ***   XX: On the Rocks by Necros
  313. /songs/1995/mod/s/saa_smuk.zip     227 *+    XX: Saa Smukt er Havet by Kim
  314. /songs/1995/mod/s/sassy_as.zip     210 *+    XX: Sassy Assline by Muttley
  315. /songs/1995/mod/s/screwdri.zip     148 *+    XX: Screwdriver Disaster by Coma
  316. /songs/1995/mod/s/shake_yo.zip     108 ***   XX: Shake Body by C.Cool,Avocado
  317. /songs/1995/mod/s/should_t.zip     172 *     XX: Should Turn to B by Tarmslyng
  318. /songs/1995/mod/s/smooth_a.zip     247 **+   XX: Smooth Attack by Pman
  319. /songs/1995/mod/s/sorry.zip         82 **    XX: Sorry to Party by Dixan
  320. /songs/1995/mod/s/space_fi.zip     115 **+   XX: Space Fish in Sig T3 by Pixie
  321. /songs/1995/mod/s/spacelab.zip     259 **    XX: Spacelab 9 by Shane
  322. /songs/1995/mod/s/spiral_m.zip     333 **+   XX: Spiral Mechanism by Shout
  323. /songs/1995/mod/s/suddenin.zip     334 **    XX: Sudden Inspiration by Hille
  324. /songs/1995/mod/s/sw-wart.zip      211 ***+  XX: Wart by Damac,Swallow
  325. /songs/1995/mod/s/syndrome.zip     226 ***   XX: Syndrome by POW
  326. /songs/1995/mod/s/syntacti.zip     149 ***   XX: Syntactic Sugar by Mittlag
  327. /songs/1995/mod/t/the_fire.zip     115 **    XX: The Fire Bird by Notman
  328. /songs/1995/other/the_madd.zip      65 [n/a] XX: MADDog in Acid World by Lasse
  329. /songs/1995/mod/t/the_milk.zip     205 **    XX: The Milkman by Weezer
  330. /songs/1995/mod/t/the_over.zip     268 ***+  XX: The Overture 2 by Front 6
  331. /songs/1995/mod/t/theatric.zip     170 **    XX: Theatrical by Deck
  332. /songs/1995/other/theparty.zip     478 [n/a] XX: The Party by Gunni
  333. /songs/1995/mod/t/too_much.zip     275 ***   XX: Too Much by Marc
  334. /songs/1995/mod/t/totalecl.zip     531 ***   XX: Total-Eclipse by Zany (check)
  335. /songs/1995/mod/t/trans-s.zip      111 **+   XX: Trance-Sax-Ual by Ktn
  336. /songs/1995/mod/f/tvnet.zip        593 ***+  XX: TV Network by Cash
  337. /songs/1995/mod/t/tzjim-sc.zip      64 **    XX: Tzjim Schack by Swaxi
  338. /songs/1995/mod/v/vandpibe.zip     154 *     XX: Vandpibe by Jeronimus
  339. /songs/1995/mod/v/vatican.zip       12 *+    XX: Vatican Rag by Hubert
  340. /songs/1995/mod/v/vermins-.zip      76 **    XX: Vermins Eat Dust by Dr.Strange
  341. /songs/1995/mod/v/visionai.zip     395 ***   XX: Visionaire by Bethoven
  342. /songs/1995/mod/x/xact_ple.zip     207 ***   XX: Xact Pleasure by NFC
  343. /songs/1995/mod/z/zyr.zip          124 **+   XX: Zyrian by S. Koponen
  344.  
  345. =----------------------------------------------------------[Graphics:General]-=
  346. Location /demos/graphics          Size Rated Description
  347. =-------------------------------- ---- ----- ---------------------------------=
  348. /disks/1996/fredpack.zip           257 ***+  VGA Pack by Fred Beltran
  349. /images/1996/b/b2p3_1.zip           16 *+    Billy Baygle by E.Megas
  350.  
  351. EXE 95 Graphics (EXE95:grfx:)
  352. /images/1995/w/wrd_alie.zip         22 ***   03: Alie by Ward
  353. /images/1995/e/eye_drkf.zip         29 **+   ??: Eye by ???
  354. /images/1995/f/farao.zip            90 ***+  ??: Farao by ???
  355. /images/1995/l/lany.zip             56 **+   ??: Lany by ???
  356. /images/1995/m/magic.zip            48 **    ??: Magic by ???
  357. /images/1995/s/sarkany.zip         101 [n/a] ??: Sarkany by ???
  358.  
  359. The Party 95 Graphics (TP95:grfx:)
  360. /images/1995/s/spacetit.zip        170 ****+ 01: Space Tits by Danny
  361. /images/1995/0-9/8climber.zip      132 ****  02: Climber by Rodney
  362. /images/1995/a/animalre.zip         51 ***   06: Animal Reign by Made
  363. /images/1995/s/silicon.zip         153 **+   09: Silicon by Louie
  364. /images/1995/s/smorrebr.zip        169 **    13: Smorrebr by Facet
  365. /images/1995/c/cutechri.zip         84 ***+  14: Cute Christina by Dice
  366. /images/1995/t/theevils.zip        120 **+   18: The Evils by Spawn
  367. /images/1995/e/eldar.zip            67 **    21: Eldar by Hook
  368. /images/1995/r/ratman.zip           76 ***+  39: Ratman by Darkman
  369. /images/1995/j/jansson.zip          17 **    43: Gamla by Saffron
  370. /images/1995/p/picturet.zip         79 **+   46: Picture T by Bifrost
  371. /images/1995/b/beyond_n.zip        138 ***   47: Beyond N by JCS
  372. /images/1995/s/sn-nuke.zip          15 **+   52: Nuclear Waste by Moebius
  373. /images/1995/s/splitter.arj         64 **    53: Splitter by Rad Ad
  374. /images/1995/c/champagn.zip         63 **    55: Champagne by Fiver
  375. /images/1995/t/theraid.zip          41 **+   74: The Raid by Damac
  376. /images/1995/o/osiris.zip           68 +     89: Osiris by Balkis
  377. /images/1995/a/assassin.zip         65 *+    ??: ??? by ???
  378. /images/1995/o/ofdeath.zip          40 **+   ??: ??? by ???
  379. /images/1995/s/spacefis.zip         40 **+   ??: Space Fist by Pixie
  380. /images/1995/w/wildbgan.zip        202 ***   ??: ??? by ???
  381.  
  382. =----------------------------------------------------[Miscellaneous:Reviewed]-=
  383. Location /demos                   Size Rated Description
  384. =-------------------------------- ---- ----- ---------------------------------=
  385. /mags/1996/cheese1.zip             217 **+   Cheese #1 by TKB
  386.  
  387.  
  388. =-[Articles]=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  389.  
  390. =---------------------------------------------------[Introduction]--[Snowman]-=
  391.  
  392.  Hello all, and welcome to DemoNews issue 116.
  393.  
  394.  Our little ftp.cdrom.com server is feeling better after a bout with a bad
  395.  mount.  The /.11 drive (the Ada archive) went bad.  Around the same time,
  396.  some sort of file integrity error was detected on the mount that housed
  397.  everyone's home directories.  Many of us were without an outside world
  398.  mail-feed for about four days.  Upon restart, the clock on the server was
  399.  set ahead about 2.5 years.  This seemed to cause problems with the
  400.  listserver but everything appears to be working correctly now.
  401.  
  402.  On an unrelated note, I am now the /pub/perl archive maintainer.  My
  403.  responsibilities exist solely of checking up on a crontab mirroring job.
  404.  If only /pub/demos were that easy.  :)
  405.  
  406.  E. Megas wrote me and said that we should have some more "demo news" (i.e.
  407.  more news about the scene).  I agree.  Please send me some to print.
  408.  
  409.  Our /pub/demos/code mirror opened up this week.  See "File Information"
  410.  above for more details.
  411.  
  412.  There will be some very big changes coming up in the way we catalog files.
  413.  We are totally redesigning from the ground up the way we handle file
  414.  descriptions and other attributes.  For those of you who are old enough to
  415.  remember, we used to have an external .txt file for each .zip on the site
  416.  (kind of like a file_id.diz).  This made things easy to move around (didn't
  417.  have to update 00index.txt files) but wasn't very friendly.
  418.  
  419.  We then moved on to 00index.txt files, which made for somewhat easy
  420.  recursive subdirectory traversal in generating an ALLFILES.TXT. This was
  421.  fine for a while but for several reasons we have decided to go to a
  422.  MASTER.LST format, propagating all descriptions down through the directory
  423.  tree (rather than the other way around).  If this doesn't make sense or
  424.  sounds boring, that's ok.  You'll see benefits soon enough.  :)
  425.  
  426.  I have recently started playing a new game.  It's called "Make a Demo CD".
  427.  The goals are to make the scene happy and earn money for your company. The
  428.  penalties are getting sued for copyright violations and loosing respect
  429.  with the scene.  I'm just a newbie at this so I haven't progressed very
  430.  far. I will either have beaten this game or been disqualified by May 14th,
  431.  1996. If any of you know some cheat codes, I'd love to hear them.  In about
  432.  three weeks I'll talk about the multi-player edition.
  433.  
  434.  On a final note, we are a bit behind on getting DemoNews out.  The "Top
  435.  Downloads" needs to be done weekly to provide any sort of stable statistics.
  436.  As a result, expect to see two more issues of this newsletter before next
  437.  monday.
  438.  
  439.  Take care.
  440.  
  441.  Snowman / Hornet - r3cgm@cdrom.com
  442.  
  443.  
  444. =-------------------------------[Intro to 3D Graphics - Volume 02]--[Kiwidog]-=
  445.  
  446.  _____Greetings
  447.  
  448.  Welcome back everyone.
  449.  
  450.  It's time for the second article in the 3D series, in which we cover
  451.  another basic element of a 3D system... something seen in nearly ever demo
  452.  for the past few years that involves vectors at all.  Rotation.  Whether it
  453.  be that nice texture-mapped stone from Valhalla's "Solstice", or just a
  454.  flat-shaded cube from a 4k intro, things rotate almost constantly.  So it's
  455.  time to start performing some rotations on our own. :-)
  456.  
  457.  Once again, there will be a supplement to this article, but this time there
  458.  will be no extra article text; everything should be in here.  But the
  459.  supplement will have sample code, so you still should get it.
  460.  DN115_3D.ZIP. Just check in the same place on ftp.cdrom.com as the last
  461.  supplement...
  462.  
  463.  I'm going to keep this article relatively short (along with the subsequent
  464.  ones)... after all, Snowman has more to put in DemoNews than my constant
  465.  rambling, and I can't keep sucking up all the space like this. ;)
  466.  Nonetheless, I hope you find this article useful, as we continue our drive
  467.  toward learning 3D graphics.
  468.  
  469.  Ready?  Well like it or not, here we go! :)
  470.  
  471.  _____Section One - 2D Rotation
  472.  
  473.  Before we can get more sophisticated 3D rotations going, we need to try it
  474.  in two dimensions first... because 3D rotations are just based on three 2D
  475.  rotations, but combined.
  476.  
  477.  So how do we rotate something in 2D?  How do we take any 2D point, give it
  478.  an angle to rotate by about the origin, and get it correctly to its new
  479.  position?  Well this is where that Trig knowledge from the first article
  480.  comes into play.
  481.  
  482.  Everything about rotation involves Trig.  Sine and Cosine are very much
  483.  your friends here.  And it's not that complicated, really... you can rotate
  484.  in one plane with only 4 multiplies (other optimizations come later as
  485.  well).
  486.  
  487.  So how do we go about this?  Well, let's take it piece by piece.  First,
  488.  I'll assume the XY plane (the real one, where Y goes up) for this, as we
  489.  try to take a point and rotate it.
  490.  
  491.  A lot of docs, when trying to explain rotation, will give you the simple
  492.  equations for it but give you no clue as to how those equations came about.
  493.  Several people have asked me, "Hey, if and when you ever do a 3D tutorial,
  494.  tell me how the heck you get those rotation equations, cuz I have no idea
  495.  where those came from and why they work."
  496.  
  497.  Well, I can't quite tell you where they came from at first (like who
  498.  thought of them), but I can replicate the ideas here and show you what
  499.  makes sense to me.  If it makes sense to you to, then I guess it worked.
  500.  :-)
  501.  
  502.  Here's the idea...
  503.  
  504.  Get out a piece of paper.  No, don't worry, this isn't a quiz. ;)
  505.  
  506.  On the paper, draw a pair of conventional XY coordinate axes, and then
  507.  lightly sketch a large circle on it.  Make sure the circle is light; you
  508.  don't really need it for much except placing a couple points.
  509.  
  510.  After you draw the circle, put a point at about, say, 30 degrees (assuming
  511.  0 degrees is to the right and the angles go counterclockwise).  Then put
  512.  another point at about 70 degrees, in the same fashion.  We're going to
  513.  pretend that the first point is our original point, and that we're trying
  514.  to rotate it to the second point, our destination... a rotation of 40
  515.  degrees about the origin.  The actual accuracy of the points doesn't
  516.  matter; if you're a bit off, it's fine.
  517.  
  518.  Now with each point, draw a triangle for that point.  Each triangle's three
  519.  sides are the X axis, the the line from the origin to the point, and the
  520.  line from the point straight down to the X axis.  What you should have now
  521.  are two right triangles in the upper right quadrant of your XY plane, one
  522.  being pretty upright (the destination point's), and the other a bit more
  523.  wide than tall.
  524.  
  525.  Time for some labels...  okay, for each triangle, label the line going from
  526.  the origin to the point as "R" (for radius).  Since it's the same length
  527.  for both triangles, we use the same label.  Now, on the first triangle (the
  528.  short, wide one), label the side along the X axis "X", for that length.
  529.  Likewise, label the line from the X axis up to the point as "Y" for that
  530.  height.
  531.  
  532.  For the second triangle (the tall one, for the 70 degree point), label the
  533.  X length and Y height as "U" and "V", respectively, in a similar fashion.
  534.  
  535.  Finally, we need two angles.  In the angle between the X axis and the
  536.  first, lower R side (30 degrees), label it φ (called Phi).  Then label the
  537.  angle between the lower R and the higher R (the one at 70 degrees) as Θ
  538.  (called Theta).
  539.  
  540.  There we go... we've got our drawing. :-)  If my little walkthrough in
  541.  drawing this has confused you to no end, either try it again from the
  542.  beginning, or look in the supplement; I'll include a PCX in there of this
  543.  same diagram I'm describing.
  544.  
  545.  Okay, so we have this drawing.  Basically, what we know in the beginning is
  546.  that we have this initial point at an unknown angle (we know it's 30
  547.  degrees in this example, but normally, you won't know that for arbitrary
  548.  points), yet we know it has Cartesian coordinates (X,Y).  What we want to
  549.  do is pump X and Y through an equation or two, along with the angle we want
  550.  to rotate by (which we labeled as Theta, and in this example is 40
  551.  degrees), and find out its new coordinates, called (U,V).  So what
  552.  equations do we use? Let's find out...
  553.  
  554.  There are several convenient identities in Trigonometry that you can find
  555.  in pretty much every math textbook with Trig in it.... one of those
  556.  identities is called the "Law of Sines", which goes like this...
  557.  
  558.    Sin(α)   Sin(ß)   Sin(Γ)
  559.        ------ = ------ = ------
  560.      A        B        C
  561.  
  562.  Where A, B, and C are the lengths of the sides of a triangle, and α, ß, and
  563.  Γ are the angles _directly opposite_ those sides...
  564.  
  565.          /|
  566.         /ß|
  567.      C /  |
  568.       /   |A
  569.      /    |
  570.     /     |
  571.    /α    Γ|
  572.    --------
  573.    B
  574.  
  575.  It doesn't have to be a right triangle; it works for every triangle there
  576.  is. Granted, for our purposes, we _will_ be using our right triangles, and
  577.  this will help us out.
  578.  
  579.  Now if we use our first right triangle, the short one, and pretend that R
  580.  is our "C" of the triangle, by the fact that this is a right triangle, we
  581.  know that Γ is 90 degrees.  And the Sine of 90 is 1, which gives us one
  582.  very nice piece of math meat.
  583.  
  584.  We only need to use one other side of our Law of Sines formula in this
  585.  example, in this case, the A-α side.  In our case, "A" is the same as Y,
  586.  and α is the same as φ.  So we have a little mini-formula,
  587.  
  588.    Sin(90)   Sin(φ)                   1    Sin(φ)
  589.    ------- = ------    which means   --- = ------
  590.       R        Y                      R      Y
  591.  
  592.  Then, if you multiply each side by Y, it moves the Y to the left side, so
  593.  
  594.     Y
  595.    --- = Sin(φ)
  596.     R
  597.  
  598.  This should all make sense so far, I hope.  If you're looking at the
  599.  diagram as you read this, it should clear things up a bit.
  600.  
  601.  Okay, so we can see the relation between the angle φ, and the sides Y and
  602.  R. Well since φ is across from Y, shouldn't we be able to have the same
  603.  kind of relation for the other triangle, with V and R?  The angle across
  604.  from V is just φ and Θ added together, so shouldn't that work?
  605.  
  606.  Sure does. :-)
  607.  
  608.     V
  609.    --- = Sin(φ+Θ)
  610.     R
  611.  
  612.  Okay, time for another nifty Trig identity (BTW, if you don't have a math
  613.  book with all these identities in it, let me know... if enough people ask
  614.  for a listing, I'll type up a quick reference list with identity equations
  615.  that you can use.  Just email to the address at the end, if you think you'd
  616.  like that :)
  617.  
  618.  Anyway, another nice identity is that for any two angles α and ß,
  619.  
  620.    Sin(α+ß) = Sin(α)*Cos(ß) + Cos(α)*Sin(ß)
  621.  
  622.  So we sub that into our previous thing, and we have
  623.  
  624.     V
  625.    --- = Sin(φ)*Cos(Θ) + Cos(φ)*Sin(Θ)
  626.     R
  627.  
  628.  Multiply by R now, to get V (the destination point's X value that we've
  629.  been trying to find), and it's
  630.  
  631.    V = R*Sin(φ)*Cos(Θ) + R*Cos(φ)*Sin(Θ)
  632.  
  633.  Welp, last identity.... this one, taken from Polar coordinates.  If you've
  634.  had algebra, you've used Polar coordinates before.  Well if you remember
  635.  the way to convert a polar point to Cartesian (I doubt you do, so I'll
  636.  remind you... it's gonna take a while before you end up memorizing all
  637.  these darn formulas, trust me :)  those conversions are
  638.  
  639.    X = R*Cos(Theta)     *** Don't confuse these with our R, X, or Y!
  640.    Y = R*Sin(Theta)         They're just conversion equations ***
  641.  
  642.  Well look at our V equation above... notice anything?  We know Phi is an
  643.  angle in the triangle that deals only with X and Y, which we know (since
  644.  they're just your first point and all).  So can we drop those R*Sin(φ) and
  645.  R*Cos(φ) parts and just sub in X and Y like you would do with Polar? You
  646.  betcha.....
  647.  
  648.    V = Y*Cos(Θ) + X*Sin(Θ)       *** FINAL V EQUATION!!! :) ***
  649.  
  650.  That's all we need!  Hooray! :)  We know X and Y, since we started with
  651.  those.  And we know Θ, since it's the number of degrees we want to rotate
  652.  by (in our example, 40 degrees).  So if we use this equation, we get the V
  653.  value, which is the Y coordinate of the FINAL point. :)
  654.  
  655.  Now we still need to get U (the final point's X coordinate).  Luckily, the
  656.  series of equations is the same almost, except one identity is different. I
  657.  won't work out the whole thing again, you can do that if you want.  But
  658.  here are the differences that you'll see.  One, since we're doing the
  659.  horizontal element instead of vertical,
  660.  
  661.    U
  662.   --- = Cos(φ+Θ)
  663.    R
  664.  
  665.  Now's Cosine's Sum of Angles formula is a little bit different than Sine's,
  666.  
  667.    Cos(α+ß) = Cos(α)*Cos(ß) - Sin(α)*Sin(ß)
  668.  
  669.  which will end up giving us that subtraction instead of addition in the
  670.  end. If you keep working the equations the same as we did before, but with
  671.  this new identity, you get the U equation too! :)
  672.  
  673.    U = X*Cos(Θ) - Y*Sin(Θ)        *** FINAL U EQUATION!!! ***
  674.  
  675.  
  676.  Summing up those equations into nice, happy, 2D rotation form.....
  677.  
  678.  
  679.    NewX = (OldX*Cos(Theta)) - (OldY*Sin(Theta))
  680.    NewY = (OldY*Cos(Theta)) + (OldX*Sin(Theta))
  681.  
  682.  And there we have it!  Note that I made it very clear as to the difference
  683.  between the "Old" and "New" values.  It's important that you do this, too.
  684.  You don't want to just use a value "X", for example.... because if you
  685.  calculate the "new" X and end up using that instead of the "old" X in the
  686.  second equation (for NewY), you don't get the right rotation.
  687.  
  688.  IN ROTATION, USE ONLY THE OLD VALUES UNTIL ALL THE NEW ONES ARE FOUND!
  689.  
  690.  Once you have the final new X and Y values, _THEN_ replace the old pair
  691.  with the new pair, and go on your way.  Make sure to keep the values
  692.  separate until that time.
  693.  
  694.  BTW... As you look back at how I derived these rotation formulas, don't
  695.  feel bad if you feel like you couldn't have derived them yourself...
  696.  especially if you're just beginning.  I know I ran on these formulas
  697.  blindly for over a year before I ended up losing them and was forced to
  698.  recreate them again in this fashion.  I couldn't have done it earlier.  It
  699.  takes time, so if you feel like you're still in the dark... don't.
  700.  Eventually you'll get the hang of it all. :-)
  701.  
  702.  Any more to 2D rotation?  Nope, that's the whole of it.  Before you try out
  703.  3D rotation (explained in the next section), test out the above principles
  704.  in some of your own code, by plotting a few pixels here and there and then
  705.  rotating them about the origin.  It's not hard at all to turn the above
  706.  formulas (formulae?) into code.  Also, if you need some help or are just
  707.  plain curious, I've got some example source (in both Pascal and C, just
  708.  like last time) in the supplement, demonstrating this stuff.  Feel free to
  709.  check it out. :)
  710.  
  711.  Okay, well, enough of this planar stuff.... on to 3D rotations!  (And
  712.  relax, there's not much more; you've done the bulk of the work already....)
  713.  
  714.  _____Section Two - 3D Rotation
  715.  
  716.  So what do we need to turn our rotations into 3D rotations?  Not much,
  717.  actually.  There are many ways to do rotations in 3D, some simpler than
  718.  others.  The simplest (and most common from what I've seen) way is to do it
  719.  by using three 2D rotations, one for each axis.
  720.  
  721.  The 2D rotations we did in the last section are on the XY plane.  But as
  722.  you think about the XY plane in terms of 3D, the rotation takes on another
  723.  meaning... it was also a rotation ABOUT the Z axis.  Meaning that we have
  724.  the Z axis, and whatever Z values the points may have, they stay the same,
  725.  as we are rotating around that axis itself.  The only values that change in
  726.  a rotation about any axis are the values of the two OTHER coordinates.
  727.  
  728.  So a rotation about Z will affect X and Y, a rotation about X will affect Y
  729.  and Z, and a rotation about Y will affect Z and X.  It's just one big
  730.  cycle...
  731.  
  732.  So if we want to do a full all-axis 3D rotation, we just arrange three
  733.  back-to-back 2D rotations, one for each axis, like this...
  734.  
  735.    NewY = (OldY*Cos(ThetaX)) - (OldZ*Sin(ThetaX))  ** X axis rotation **
  736.    NewZ = (OldZ*Cos(ThetaX)) + (OldY*Sin(ThetaX))
  737.  
  738.    (Copy NewY and NewZ into OldY and OldZ)
  739.  
  740.    NewZ = (OldZ*Cos(ThetaY)) - (OldX*Sin(ThetaY))  ** Y axis rotation **
  741.    NewX = (OldX*Cos(ThetaY)) + (OldZ*Sin(ThetaY))
  742.  
  743.    (Copy NewZ and NewX into OldZ and OldX)
  744.  
  745.    NewX = (OldX*Cos(ThetaZ)) - (OldY*Sin(ThetaZ))  ** Z axis rotation **
  746.    NewY = (OldY*Cos(ThetaZ)) + (OldX*Sin(ThetaZ))
  747.  
  748.    (No copies needed, since we're done)
  749.  
  750.  The reasons for mid-copies are like I said; for each axis rotation you need
  751.  to keep using the old values until both the new ones are done.  But each
  752.  axis' rotation is independent of the other two... so after each pair, you
  753.  need to update all the values before going on to the next axis.  You don't
  754.  want to use one axis' old values when going into rotating about another
  755.  axis; that would be bad.
  756.  
  757.  Once you've done all three axes, you should have your new point, completely
  758.  rotated about each angle as you wish (ThetaX, ThetaY, and ThetaZ).
  759.  
  760.  One important point... the order in which you do these axes DOES make a
  761.  difference.  Rotating in an X-Y-Z sequence will not give you the same
  762.  results as rotating in a Z-X-Y sequence, etc.  Now, for your engine at this
  763.  point, all you're probably concerned about is looks, i.e. that your object
  764.  is rotating and you can see it rotating.  Since that's the case, it really
  765.  doesn't matter for the moment which order you do things in.  It's the
  766.  appearance that counts.  But later on, when you get into more complex
  767.  issues that involve more things than just a set of points, you'll want to
  768.  keep your rotation order consistent.  I just use X-Y-Z because it's pretty
  769.  natural. :-)
  770.  
  771.  I'm not going to get into optimizations of this rotation material until
  772.  another time, but I can give you a hint or two now... first, you'll notice
  773.  that right now it's at 12 multiplies for a full rotation (4 for each axis).
  774.  But it turns out you can reduce it to at least 9 multiplies, by
  775.  precalculating a few values at the beginning of each frame and getting a
  776.  final 3x3 matrix for the actual point rotations themselves (if you don't
  777.  know what I mean by matrix, don't worry about it at the moment; we'll get
  778.  into matrices later on).  It's something to look into, if you're curious
  779.  and feel like tinkering with the math a bit.
  780.  
  781.  Also, once again, this method of rotation is only one way to rotate.  There
  782.  are other ways, sometimes involving other coordinate systems, that can be
  783.  more efficient on occasion as well.  You'll discover those in time (and
  784.  probably in some of the later articles :)  But for now, this I think is the
  785.  simplest way to begin... get these concepts down first, and drill them into
  786.  your brain.  You'll know when to switch gears when the time comes.
  787.  
  788.  Well, looks like the end of another article!  I've got some sample source
  789.  in the supplement, as well as a PCX of that 2D rotation diagram, if you got
  790.  lost in all of this mess. :-)  Take the time to look at the code, see how
  791.  it relates to the math used in here, and most importantly, DO SOME
  792.  EXPERIMENTATION ON YOUR OWN.  This kinda stuff isn't learned by reading,
  793.  it's learned by doing.
  794.  
  795.  Now go forth, plot some dots, get them spinning, and have fun!  Keep
  796.  watching, though... 'cause it's only gonna get better. :-)
  797.  
  798.  See you next time...
  799.  
  800.  Kiwidog / Hornet , Terraformer - kiwidog@vt.edu
  801.  
  802.  
  803. =----------------------------------[VGA Hardware Tricks, Part 4/6]--[Trixter]-=
  804.  
  805.  _____Preface
  806.  
  807.  Welcome to VGA Hardware Tricks, a six-part series written by
  808.  Trixter/Hornet.  In this series, I'll be exploring ways you can push VGA
  809.  harder to achieve new effects.  The emphasis of this series is twofold:
  810.  
  811.  The techniques discussed will work on any *standard* VGA card. (No SVGA or
  812.  VESA video cards are necessary, but these techniques will work on those
  813.  cards as well.)
  814.  
  815.  The techniques discussed require very little calculation, so they will work
  816.  on slower computers.  (Some techniques, however, requires a lot of CPU
  817.  *attention*, which means that while the effects are happening, they can't
  818.  be disturbed by other calculations, etc.  Good Assembler programmers might
  819.  be able to get around this, however.)
  820.  
  821.  This series is for intermediate to advanced coders, so there are a couple
  822.  of prerequisites you should meet:  Example code will be given in assembler
  823.  and Pascal, so familiarity with those languages will be helpful when
  824.  looking at the example code; also, a familiarity with Mode X (unchained
  825.  VGA) is required, as procedures like changing video resolutions will be
  826.  discussed.
  827.  
  828.  This series covers six topics:
  829.  
  830.  - Crossfading 16-color pictures
  831.  - Crossfading 256-color pictures
  832.  - More than 256 colors: 12-bit color
  833.  - More than 256 colors: 18-bit color    (this article)
  834.  - Copper effects in text mode
  835.  - Displaying graphics in text mode
  836.  
  837.  _____Introduction
  838.  
  839.  Yes, you read that title right--we're going to display 18-bit color on a
  840.  piece of hardware only built for 8-bit color.  Seem impossible?
  841.  Technically, it is.  But using our old friend, persistence of vision, we
  842.  can fake it convincingly--and the best part is, it's not CPU intensive at
  843.  all, just a clever arrangement of pixels.
  844.  
  845.  (Note:  This technique has been so overused in 1995 that, initially, I
  846.  thought it would need no explanation; just some example code and that would
  847.  be it.  However, there is inevitably someone, somewhere, that doesn't
  848.  really grasp how this works.  So, I feel a full explanation is necessary.)
  849.  
  850.  As I've written about many times before, our brain is a very lazy thing. So
  851.  lazy, in fact, that it tends to fill in information that our eyes don't
  852.  provide.  This is called Persistence Of Vision.  (If you need a more
  853.  detailed explanation of what that is, look at previous VGA Hardware Tricks
  854.  articles or visit your local library.)  Persistence Of Vision has been used
  855.  in many places before computers even existed, like the concept of film and
  856.  television.  It's television, in fact, that provides us with the example
  857.  we'll use to coax 18-bit (262,144) color out of out 8-bit (256) color video
  858.  card.
  859.  
  860.  If you've ever gotten curious as to how your television or computer monitor
  861.  works, you might have gone right up to the screen and looked at it closely,
  862.  possibly with a magnifying glass.  If you'd had, you'd see a small hexagonal
  863.  grid of red, green, and blue dots.  They're arranged in groups of three,
  864.  like this:
  865.  
  866.    X
  867.  
  868.  X   X
  869.  
  870.  This arrangement is called a "triad".  Each red, green, and blue dot in a
  871.  triad glow with a different intensity, producing one solid color. (Well,
  872.  it's not exactly a *solid* color, but the dots are so small and close
  873.  together that POV blends them into one color for us.)  The entire screen is
  874.  made up of triads.
  875.  
  876.  To produce 18-bit color, all we have to do is emulate a series of
  877.  triads--that is, put a red, green, and blue pixel next to each other and
  878.  alter the intensity of all three to blend into a single color.  This
  879.  technique produces 18-bit color because the VGA hardware is capable of
  880.  producing 6-bit (64) intensities of red, green, and blue for any given
  881.  pixel.  So, 6+6+6 = 18-bit color, or to look at it another way, 64 red
  882.  values * 64 blue values * 64 green values = 262,144 possible colors.
  883.  
  884.  _____Implementing Triads
  885.  
  886.  To emulate a triad, we're going to need to set up the palette first. VGA is
  887.  capable of 64 different intensities of red, green, and blue, so the palette
  888.  needs to have 64 reds, 64 greens, and 64 blues.  Pseudocode for doing that
  889.  would probably look like this:
  890.  
  891.  for loop:=0 to 63 do begin
  892.    set palette index "loop"     to r=loop,g=0,b=0  <-- red entries
  893.    set palette index "loop+64"  to r=0,g=loop,b=0  <-- green entries
  894.    set palette index "loop+128" to r=0,g=0,b=loop  <-- blue entries
  895.  end;
  896.  
  897.  This leaves 64 colors left over at the end of our palette (from 192 to
  898.  255), for anything we feel like doing.
  899.  
  900.  Now we get to plot the three pixels of a triad.  Since VGA lays out pixels
  901.  in a grid (as opposed to a "honeycomb" like an actual television screen),
  902.  we have to lay them out on a grid as well.  The best way is in a line, like
  903.  this:
  904.  
  905.  Key:  R = red pixel, G = green pixel, B = blue pixel
  906.  
  907.     0 1 2 3 4 5 6 7 8 9
  908.  
  909.  0  R R R R R R R R R R
  910.  1  G G G G G G G G G G
  911.  2  B B B B B B B B B B
  912.  
  913.  3  R R R R R R R R R R
  914.  4  G G G G G G G G G G
  915.  5  B B B B B B B B B B
  916.  
  917.  etc.  So, 18-bit color pixel "(0,0)" is really "red at (0,0)", "green at
  918.  (0,1)", and "blue at (0,2)".
  919.  
  920.  _____Potential problems
  921.  
  922.  It sounds easy, doesn't it?  Just put a red, green, and blue pixel next to
  923.  each other and you've got one of those 262,144 colors.  If you were to stop
  924.  reading this article right now and jump to the compiler, you'd probably run
  925.  into a problem as soon as you entered mode 13h:  The pixels are big.  *Way*
  926.  too big.  In fact, you'd have to sit about four feet away from the screen
  927.  to ignore the fact that you're really looking at three pixels close
  928.  together instead of a new color.  Not only that, but each "pixel" is made
  929.  up of three pixels arranged vertically, which is a really weird aspect
  930.  ratio (the effective resolution is 320x66).  In order to fix these
  931.  problems, we've got to shrink the height of each pixel.  But how can we
  932.  make the pixels smaller?
  933.  
  934.  One solution that's tempting is to use a 640x480x256 VESA mode, or
  935.  something similar.  That defeats the whole purpose of this, because then a
  936.  super-vga card would be required, and this series of articles is dedicated
  937.  to achieving new effects on *standard* hardware.  (Yes, not *everyone* has
  938.  a super-vga card and monitor.)  Besides, if you were going to limit your
  939.  audience to a VESA mode, you might as well go all the way and use an actual
  940.  24-bit color mode anyway.  Finally, 640x480x256 is 300K of video memory per
  941.  page, which is too slow for animation (even on 486 machines).
  942.  
  943.  The solution, as it has been in the past, is to use Mode X.  Mode X, as you
  944.  recall, is a video mode created by unchaining the video RAM, so that you
  945.  can (amongst many other things) alter the display resolution.  It is easy
  946.  to make a resolution of 320x400 (effectively 320x133) under Mode X, which
  947.  helps a little, and actually gives us 2 video pages to work with. This is
  948.  suitable for animation.  If you need more pixels and something a little
  949.  more accurate, 320x480 (effectively 320x160) comes close to the standard
  950.  320x200 1:1.3 aspect ratio that VGA users are used to.  Because it's 480
  951.  lines, it will work with all monitors.
  952.  
  953.  Believe it or not, you can actually go higher than that, to 320x600
  954.  (effectively 320x200)!  This mode was, to my knowledge, first used by Adam
  955.  Bergstrom; in fact, his code is the code in the vgahard4.zip package
  956.  described later in this article.  Of course, this resolution is only
  957.  possible on monitors that can display 800x600, because it uses 600 screen
  958.  lines.  It also uses 192k of the 256K of video ram we have access to, so
  959.  that makes it even more unsuitable for animation.  However, it's best for
  960.  displaying static pictures; I used it for Hornet's NAID Party report
  961.  (hrn-nrpt.zip on ftp.cdrom.com) to display "320x200" 24-bit color pictures
  962.  (I shifted left (SHL) each RGB component down two bits before plotting to
  963.  the screen).
  964.  
  965.  _____Code
  966.  
  967.  Code that achieves this effect is available on ftp.cdrom.com in the
  968.  directory /pub/demos/hornet/demonews/vgahard in the file vgahard4.zip. This
  969.  article is stored there as well.  To compile the code directly, you'll need
  970.  Turbo Pascal 7.0 or later.  (The code can be compiled on earlier compilers
  971.  as well, but some slight modification might be necessary.)
  972.  
  973.  _____Notes
  974.  
  975.  This method is extremely useful for animation, since there's no palette
  976.  switching or page flipping required, unlike some other methods.  It lends
  977.  itself so well to this that it has become a "fad" effect for practically
  978.  every demo after X14 / Orange first used it on the PC.  The 18-bit color
  979.  effect is sometimes called "Orange's 262144 color mode" as a result.
  980.  Another demo that uses this is Just / Legend Design.  (In fact, the entire
  981.  demo is in that mode.)
  982.  
  983.  Ambience and Luminati by Tran claim 21-bit color; they achieve this by
  984.  using two video pages and flipping between them rapidly, using two flipping
  985.  pixels in one location to blend into a "third" pixel, similar to the 12-bit
  986.  color technique covered in VGA Hardware Tricks #3.  Once again, POV at
  987.  work.  ;)  In order to achieve this, however, Tran has to reprogram the VGA
  988.  registers, increasing the refresh rate of the screen so that it flips pages
  989.  at nearly double it's normal rate, at 100Hz (100 times a second), giving an
  990.  effect screen refresh rate of 50Hz.  This mode is not completely compatible
  991.  with all monitors, so I have not decided to cover it in this series.
  992.  Captain Hook has written up a short article on it, however, so I expect
  993.  you'll learn how to do it from him shortly.
  994.  
  995.  _____Next Time
  996.  
  997.  I'm not *quite* done with color, if you can believe that.  Next time, I'll
  998.  show you how to display 400 different colors at the same time--in *text
  999.  mode*.  :)  If you're familiar with the "copper" chip inside every Amiga
  1000.  computer, you'll know what I'm talking about.  Have fun experimenting until
  1001.  then!
  1002.  
  1003.  Trixter / Hornet - trixter@ftp.cdrom.com
  1004.  
  1005.  
  1006. =-[Subscribing]-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1007.  
  1008.  _____How to subscribe to DemoNews
  1009.  
  1010.  Mail to : listserver@unseen.aztec.co.za
  1011.  Body    : subscribe demuan-list [first_name] [last_name]
  1012.  
  1013.  The listserver will send DemoNews to your e-mail's return address.
  1014.  
  1015.  _____Back Issues
  1016.  
  1017.  Older issues of DemoNews can be located under /demos/hornet/demonews.
  1018.  Newly released issues of DemoNews are posted to /demos/incoming/news.
  1019.  
  1020.  
  1021. =-[Closing]-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1022.  
  1023.  For questions and comments, you can contact us at r3cgm@cdrom.com
  1024.  Your mail will be forwarded to the appropriate individual.
  1025.  
  1026.  
  1027. ...........................................................End.of.DemoNews.116.
  1028.  
  1029.